#ifndef MYGUI_H
#define MYGUI_H

#include <QMainWindow>
#include <ui_attributes.h>
#include <ui_snapgrid.h>
#include <ui_insertline.h>
#include <ui_insertpoint.h>
#include <ui_insertrec.h>
class AttribManager;

namespace Ui {
    class MyGUI;
}

class MyGUI : public QMainWindow
{
    Q_OBJECT

public:
    explicit MyGUI(QWidget *parent = 0);
    ~MyGUI();
    Ui::MyGUI* getMyUI() { return ui;};


private:
    Ui::MyGUI *ui;
    Ui::GridDialog m_gridDlg; 
    QDialog *m_gridDialog;
    Ui::AttributeDialog m_attrDlg; 
    QDialog *m_attrDialog;
    AttribManager* m_attribManager;
	Ui::InsertPoint m_insertPnt;
	QDialog *m_insertPoint;	
	Ui::InsertLine m_insertLn;
	QDialog *m_insertLine;
	Ui::InsertRec m_insertRc;
	QDialog *m_insertRec;

private slots:
  void on_actionOpen_triggered();
  void on_actionSave_triggered();
  void on_actionVertex_triggered();
  void on_actionEdge_triggered();
  void on_actionFace_triggered();
  void on_actionAttributes_triggered();
  void on_actionToolButton_1_triggered();
  void on_actionToolButton_2_triggered();
  void on_actionToolButton_3_triggered();
  void on_actionToolButton_4_triggered();
  void on_actionToolButton_5_triggered();
  void on_actionToolButton_6_triggered();
  void on_actionToolButton_7_triggered();
  void on_actionToolButton_8_triggered();
  void on_actionToolButton_9_triggered();
  void on_actionToolButton_10_triggered();
  void on_actionToolButton_11_triggered();
  void on_actionToolButton_12_triggered();
  void on_actionToolButton_13_triggered();
  void on_actionToolButton_14_triggered();
  void applyAttributeClicked();
  void removeAttributeClicked();
  void cancelAttributeClicked();
  void createAttributeClicked();
  void displayAttribProperties();
  void updateAttributeValues(int _r,int _c);
  void updateAtribSymbolSize(int _s);
  void okInsertPointClicked();
  void cancelInsertPointClicked();
  void applyInsertPointClicked();
  void okInsertLineClicked();
  void cancelInsertLineClicked();
  void applyInsertLineClicked();
  void okInsertRecClicked();
  void cancelInsertRecClicked();
  void applyInsertRecClicked();
  void testprintRec (double _x1, double _x2, double _y1, double _y2, double _tol);
  void testprintLine(double _x1, double _x2, double _y1, double _y2, double _tol);
};

#endif // MYGUI_H
